package cn.mes.module.mes.dal.dataobject.baseworkplan;

import lombok.*;

import java.time.LocalDate;
import java.time.LocalDateTime;

import com.baomidou.mybatisplus.annotation.*;
import cn.mes.framework.mybatis.core.dataobject.BaseDO;

/**
 * 任务单信息 DO
 *
 * @author 游创
 */
@TableName("mes_base_work_plan")
@KeySequence("mes_base_work_plan_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库，可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class BaseWorkPlanDO extends BaseDO {

    /**
     * 任务单信息ID
     */
    @TableId(type = IdType.INPUT)
    private String id;
    /**
     * 任务单号
     */
    private String workPlanId;
    /**
     * 任务单内码
     */
    private String workPlanInterId;
    /**
     * 产品名称
     */
    private String productName;

    /**
     * 产品料号
     */
    private String productId;
    /**
     * 客户ID
     */
    private String customerId;
    /**
     * 客户名称
     */
    private String customerName;
    /**
     * 计量单位名称
     */
    private String unitName;
    /**
     * 计量单位编号
     */
    private String unitId;
    /**
     * 客户料号
     */
    private String customerProductId;
    /**
     * 产品机种
     */
    private String machineType;
    /**
     * 机种件别
     *
     * 枚举 {@link TODO mes_machine_item 对应的类}
     */
    private String machineItem;
    /**
     * 产品简称
     */
    private String productShortName;
    /**
     * 生产组
     */
    private String productGroup;
    /**
     * 生产组编码
     */
    private String productGroupCode;
    /**
     * 任务单类型
     */
    private String workPlanType;
    /**
     * 任务单类型编码
     */
    private String workPlanTypeCode;
    /**
     * 车间ID
     */
    private String workShopId;
    /**
     * 车间名称
     */
    private String workShopName;
    /**
     * 车间名称编码
     */
    private String workShopCode;
    /**
     * 计划产量
     */
    private Long workPlanProductNum;
    /**
     * 计划开始时间
     */
    private LocalDateTime planStartTime;
    /**
     * 计划结束时间
     */
    private LocalDateTime planEndTime;
    /**
     * 实际开始时间
     */
    private LocalDateTime actualStartTime;
    /**
     * 实际结束时间
     */
    private LocalDateTime actualEndTime;
    /**
     * 工单状态
     */
    private Integer status;
    /**
     * 发料人编号
     */
    private String distributeManagerId;
    /**
     * 收料人编号
     */
    private String receiveManagerId;
    /**
     * 模具编号
     */
    private String moldNo;
    /**
     * 模穴数量
     */
    private Integer moldCaveNum;
    /**
     * 切换方式
     */
    private Integer exchangeType;
    /**
     * 是否模具共用
     */
    private Boolean isMoldSame;
    /**
     * 包规数量
     */
    private Long quantity;
    /**
     * 制单时间
     */
    private LocalDateTime generateDateTime;
    /**
     * 制单人
     */
    private String generateUser;
    /**
     * 结案时间
     */
    private LocalDate closeDateTime;

    private String machineName;

}